function [snr_db, extra, carrier_error, code_error, pre] = snr_po_run (sat, sfc, ant, ref, opt, bias, field, pre)
    if (nargin < 7),  field = [];  end
    if (nargin < 8),  pre = [];  end
    setup = struct('sat',sat, 'sfc',sfc, 'ant',ant, 'ref',ref, 'opt',opt, 'bias',bias, 'field',{field}, 'pre',pre);
    [extra, snr_db, carrier_error, code_error] = snr_po (setup);
    extra = arrayfun(@(s) setfields(s, ...
        'composite',struct('phasor',s.phasor_composite), ...
        'multipath',struct('phasor',s.phasor_composite), ...
        'direct',struct('phasor',s.phasor_direct), ...
        'net',struct('phasor',s.phasor_reflected) ...
        ), extra);
    pre = setup.pre;
end

